struct usb_device *dev;
for (dev = bus->devices; dev; dev = dev->next) {
- /* Probably too promiscious of a match, but since
- * Garmin doesn't document the _proper_ matching,
- * we just take the easy way out for now.
- * Unfortunatey, blowing on DeviceClass == Mass storage
- * doesn't work on CO, at least.
+ /*
+ * Exclude Mass Storage devices (CO, OR, Nuvi, etc.)
+ * from this scan.
+ * At least on Mac, bDeviceClass isn't
+ * USB_MASS_STORAGE as it should be (perhaps because
+ * the storage driver has already bound to it?) so
+ * we fondle only the proprietary class devices.
*/
if (dev->descriptor.idVendor == GARMIN_VID &&
- dev->config) {
- switch (dev->descriptor.idProduct) {
- case 0x19: // Nuvi;
- case 0x2244: // Zumo;
- case 0x2295: // CO;
- continue;
- }
+ dev->config &&
+ dev->descriptor.bDeviceClass == USB_CLASS_VENDOR_SPEC ) {
if (req_unit_number < 0) {
garmin_usb_start(dev, lud);
/*